In the world of computers and processors there is an unrelenting drive for additional computing power and faster calculation times. In this context, then, systems in which several processors can be combined to work in parallel with one another are necessary.
Imaging systems which obtain visual images and perform various manipulations with respect to the data and then control the display of the imaged and stored data inherently require large amounts of computations and memory. Such imaging systems are prime candidates for multi-processing where different processors perform different tasks concurrently in parallel. These processors can be working together in the single instruction, multiple data mod (SIMD) where all of the processors are operating from the same instruction but obtaining data from various sources, or the processors can be working together in the multiple instruction, multiple data mode (MIMD) where each processor is working from a different set of instructions and working on data from different sources. For different operations, different configurations are necessary.
Another major problem is the coordination between the various processors. One example of the problem is the design of a system in which the processors at some periods of time have access to any memory as the need arises while at other periods of time some processors have exclusive access to one or more memories. Since the processors are designed to run autonomously, there must be some quick method for the processors to communicate to each other as to their current status. Without such a communication link the situation will arise that one processor wants exclusive access to a memory and another processor also wants to obtain, or store, data in that same memory. Major contention problems would arise in such a situation and one processor, the non-exclusive one, could end up waiting a long period of time before gaining access.
The problem is compounded when it is realized that the amount of information that must be transferred in some situations, particularly when the entire switching network is to be reconfigured, could be substantial. At the same time, such information must be communicated quickly, sometimes on a cycle-by-cycle basis.
Image processing systems, in particular, are subject to wide difference in the manner in which they handle data. These differences must be handled efficiently and the changeover from one mode to the next must be performed smoothly and without hardship on the system in terms of time or resources.
An example of the need for different operational modes for an image processor arises when the various pixels of an image must be manipulated in some manner. This manipulation usually requires the processor to have knowledge of the nearby pixels but not of the far away pixels. In this situation, a parallel processing system would operate such that a particular processor, or group of processors, would operate on a particular block of pixels (as contained in a particular block of memory). Other processors would concurrently work on other blocks of pixels. The most efficient mode of operation would be for each such block of processors to operate in the SIMD mode.
At some point in time, however, it might be necessary for the various processors to have information from remote pixels. In this situation the processors could switch to the MIMD mode so that data from various different pixel blocks becomes easily available.
Thus, a need exists in the art for an interprocessor communication system in which the processors in a parallel processing system communicate with each other concerning system configuration situations in a variety of modes dependent upon the situation.
There is a further need in the art for a system which handles a multi-processor having multi-memories such that the system can easily, on a cycle-by-cycle basis (if necessary), switch between the SIMD and MIMD modes on an interchangeable basis.